<template>
  <!-- 导入表 -->
  <el-dialog :title="$t('导入表')" :visible.sync="visible" :close-on-click-modal="false" width="800px" top="5vh">
    <el-form ref="queryForm" :model="queryParams" :inline="true">
      <el-form-item :label="$t('表名称')" prop="tableName">
        <el-input
          v-model="queryParams.tableName"
          :placeholder="$t('表名称')"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item :label="$t('表描述')" prop="tableComment">
        <el-input
          v-model="queryParams.tableComment"
          :placeholder="$t('表描述')"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t("搜索") }}</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t("重置") }}</el-button>
      </el-form-item>
    </el-form>
    <el-row>
      <el-table tooltip-effect="darkTable" border :data="dbTableList" height="260px" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="45" />
        <el-table-column prop="tableName" :label="$t('表名称')" />
        <el-table-column prop="tableComment" :label="$t('表描述')" />
        <el-table-column prop="createTime" :label="$t('创建时间')" />
        <el-table-column prop="updateTime" :label="$t('更新时间')" />
      </el-table>
      <pagination
        v-show="total>0"
        :total="total"
        :page.sync="queryParams.pageNum"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
      />
    </el-row>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click="handleImportTable">{{ $t("确定") }}</el-button>
      <el-button @click="visible = false">{{ $t("取消") }}</el-button>
    </div>
  </el-dialog>
</template>

<script>
  import { listDbTable } from '@/api/tool/gen'
  import { importTable } from '@/api/system/desform/onlineForm/onlCgformHead'
  export default {
    data() {
      return {
        // 遮罩层
        visible: false,
        // 选中数组值
        tables: [],
        // 总条数
        total: 0,
        // 表数据
        dbTableList: [],
        // 查询参数
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          tableName: undefined,
          tableComment: undefined
        }
      }
    },
    methods: {
      // 显示弹框
      show() {
        this.getList()
        this.visible = true
      },
      // 多选框选中数据
      handleSelectionChange(selection) {
        this.tables = selection.map(item => item.tableName)
      },
      // 查询表数据
      getList() {
        listDbTable(this.queryParams).then(res => {
          if (res.code === 200) {
            this.dbTableList = res.rows
            this.total = res.total
          }
        })
      },
      /** 搜索按钮操作 */
      handleQuery() {
        this.queryParams.pageNum = 1
        this.getList()
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.resetForm('queryForm')
        this.handleQuery()
      },
      /** 导入按钮操作 */
      handleImportTable() {
        importTable({ tables: this.tables.join(',') }).then(res => {
          this.msgSuccess(res.msg)
          if (res.code === 200) {
            this.visible = false
            this.$emit('ok')
          }
        })
      }
    }
  }
</script>
